﻿<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
session_start(); //we need to call PHP's session object to access it through CI
class ManageUser extends CI_Controller {

	function __construct()
	{
		parent::__construct();
		$this->load->model('user','',TRUE);
	}
	
	function addnew()
	{
		if($this->session->userdata('logged_in'))
		{
			//$session_data = $this->session->userdata('logged_in');
			//$created_user = $session_data['user_id'];
			
			$username = $this->input->post('username');
			$password = $this->input->post('password');
			$is_admin = $this->input->post('is_admin');
			$full_name = $this->input->post('full_name');
			$email = $this->input->post('email');
			$confirm_password = $this->input->post('confirm_password');
			
			//validate here
			$validate_message = "";
			$rs = $this->user->get_user($username);
			if ($username == "e.g huunc" || trim($username) == "")
			{
				$validate_message .= "<p>Tên đăng nhập không được để trống!</p>";
			}
			else if (strstr($username, " "))
			{
				$validate_message .= "<p>Tên đăng nhập không được chứa dấu cách!</p>";
			}
			if ($password == "e.g 1234567" || trim($password) == "")
			{
				$validate_message .= "<p>Mật khẩu không được để trống!</p>";
			}
			if ($confirm_password == "e.g 1234567" || trim($confirm_password) == "")
			{
				$validate_message .= "<p> Xác nhận mật khẩu không được để trống!</p>";
			}
			if ($rs) //username is existed
			{
				$validate_message .= "<p>Tên đăng nhập đã tồn tại!</p>";
			}
			if ($password != $confirm_password) //password do not match
			{
				$validate_message .= "<p>Mật khẩu xác nhận không đúng!</p>";
			}
			
			if ($full_name == "e.g Nguyễn Chí Hữu")
				$full_name = "";
			if ($email == "e.g huukhtn1991@gmail.com")
				$email = "";
			
			//if validate failed
			if ($validate_message != "")
			{
				$this->session->set_flashdata('error', $validate_message);
				redirect(site_url('tdc/user/addnew'));
			} else // insert to database
			{
				if ($this->user->add_user($username, $password, $email, $is_admin, $full_name))
				{
					$this->session->set_flashdata('ok', '<p>Thêm tài khoản mới thành công.</p>');
				}
				else
				{
					$this->session->set_flashdata('error', '<p>Thêm tài khoản mới thất bại!</p>');
				}
				redirect(site_url('tdc/user/addnew'));
			}
			
		}
	}
	
	function edit()
	{
		if($this->session->userdata('logged_in'))
		{
			$session_data = $this->session->userdata('logged_in');
			$user_id = $session_data['user_id'];
			
			$full_name = $this->input->post('full_name');
			$email = $this->input->post('email');
			
			if ($this->user->update_user($full_name, $email, $user_id))
				{
					$this->session->set_flashdata('ok', '<p>Sửa thông tin tài khoản thành công.</p>');
				}
				else
				{
					$this->session->set_flashdata('error', '<p>Sửa thông tin tài khoản thất bại!</p>');
				}
				redirect(site_url('tdc/user/edit'));
		}
	}
	
	function changepass()
	{
		if($this->session->userdata('logged_in'))
		{
			$session_data = $this->session->userdata('logged_in');
			$user_id = $session_data['user_id'];
			$username = $session_data['username'];
			
			$old_pass = $this->input->post('old_pass');
			$new_pass = $this->input->post('new_pass');
			$confirm_new_pass = $this->input->post('confirm_new_pass');
			
			if (trim($old_pass) == '' || trim($new_pass) == '' || trim($confirm_new_pass) == '') 
			{
				$this->session->set_flashdata('error', '<p>Bạn phải điền đầy đủ thông tin!</p>');
				redirect(site_url('tdc/user/edit'));
			}
			
			if ($new_pass != $confirm_new_pass) 
			{
				$this->session->set_flashdata('error', '<p>Xác nhận mật khẩu mới không đúng!</p>');
				redirect(site_url('tdc/user/edit'));
			}
						
			$result = $this->user->get_user($username);

			if($result)
			{		
				if (crypt($old_pass . $result->salt, $result->password) == $result->password)
				{
					
					if ($this->user->update_pass($new_pass, $user_id))
					{
						$this->session->set_flashdata('ok', '<p>Đổi mật khẩu thành công.</p>');
					}
					else
					{
						$this->session->set_flashdata('error', '<p>Đổi mật khẩu thất bại!</p>');
					}
					
				} else
				{
					$this->session->set_flashdata('error', '<p>Mật khẩu cũ không chính xác!</p>');
				}
				redirect(site_url('tdc/user/edit'));
			} else
			{
				redirect(site_url('login'));	
			}
			
		}
	}
	
	function listall()
	{
		$this->datatables->select('user_id, username, full_name, email, is_admin, created_date');
		$this->datatables->from('user');
		$this->datatables->add_column('',
			'<a href="' . site_url('manageuser/delete/$1'). '" onclick="return del_confirm();"><img src="' . base_url() . 'img/delete-icon.png" alt="Xóa" title="Xóa" /></a>', 'user_id');
		echo $this->datatables->generate();
	}
	
	function delete($user_id)
	{
		if($this->session->userdata('logged_in'))
		{
			$session_data = $this->session->userdata('logged_in');
			if ($session_data['user_id'] == $user_id)
			{
				
				$this->session->set_flashdata('error', '<p>Bạn không thể xóa chính tài khoản của mình!</p>');
				redirect(site_url('tdc/user/home'));
			}
			else
			{
				if ($this->user->delete_user($user_id))
				{
					$this->session->set_flashdata('ok', '<p>Xóa tài khoản thành công.</p>');
					redirect(site_url('tdc/user/home'));
				}
				else
				{
					$this->session->set_flashdata('error', '<p>Xóa tài khoản thất bại!</p>');
					redirect(site_url('tdc/user/home'));
				}
			}
		}
	}
}